package com.llmm.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Set;

public class JsonUtils {



    /**
     * @description: 获取json文件中所有的key值。
     * @param: fileContent json文件内容
     * @param: list 存放 key。
     * @return: java.util.List
     * @author: llmm
     * @date: 2022/5/22
     */
    public static List getFileKeys(String fileContent,List list){
        JSONObject jsonObject =null;
        if (JSONObject.parseObject(fileContent)==null){
            return list;
        }else {
            jsonObject = JSONObject.parseObject(fileContent);
        }
        Set<String> keys = jsonObject.keySet();
        for (String key : keys) {
            list.add(key);
            Object o = jsonObject.get(key);
            if (o instanceof JSONObject){
                String s = jsonObject.get(key).toString();
                getFileKeys(s,list);
            }else if (o instanceof JSONArray){
                // 如果数字为空
                if (((JSONArray) o).size()==0){
                    continue;
                }
                // 如果数组是字符串。
                Object o1 = ((JSONArray) o).get(0);
                if (o1 instanceof String){
                    continue;
                }
                getFileKeys((String) o1,list);
            }
        }
        return list;
    }

}
